package com.spring.web.adminmanage.config;

import com.spring.web.adminmanage.interceptor.LoginInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.converter.HttpMessageConverter;
import org.springframework.http.converter.StringHttpMessageConverter;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;

import java.nio.charset.Charset;
import java.util.List;

@Configuration
public class CustomMVCConfiguration extends WebMvcConfigurerAdapter {

	@Bean
	LoginInterceptor loginInterceptor() {
		return new LoginInterceptor();
	}

	@Bean
	public HttpMessageConverter<String> responseBodyConverter() {
	    StringHttpMessageConverter converter = new StringHttpMessageConverter(Charset.forName("UTF-8"));
	    return converter;
	}

	@Override
	public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
	    super.configureMessageConverters(converters);
	    converters.add(responseBodyConverter());
	}
 
    public void addInterceptors(InterceptorRegistry registry) {
    	//拦截规则：除了login，其他都拦截判断
        registry.addInterceptor(loginInterceptor()).addPathPatterns("/**")
        	.excludePathPatterns("/manage/**");
        super.addInterceptors(registry);
    }
    
}
